測試是前端裡面的一個重要單元,雖然說很重要,但是在一般的練習專案中,不會特別的去撰寫測試單元,自然就不會去研究相關的資料。趁這次鐵人賽的機會,來好好的 push 自己學學測試相關的用法,本篇會著重在了解測試的觀念上,還不會進入真正的實作,希望可以對測試完全沒有概念的新手們有所幫助。那麼,我們直接開始吧~
這裡想要來談談關於測試的一些基本知識點。
測試就是在產品上線之前,所做的一系列檢驗,目的是為了要確認產品的功能是正確的、可被預測的。測試的目的在於找出產品的 Bug,並且檢測報告交給相關人員去進行修正,排除產品的問題。
測試的好處可以是:
主要可以分為以下類型。
單元測試 (Unit testing)
整合測試 (Integration testing)
端對端測試 (End-to-end testing) (E2E testing)
靜態測試 (Static testing)
其中,常被拿來討論的為單元測試
。
單元測試(UT)可以參考這篇文章【1】
簡單來說,單元測試的用途就是:「用最小單邏輯功能,比如某個 Class 或是 Function 來做測試,好處是只測試小小的功能,不會影響整個系統。並且作單元測試也可以保證程式碼的品質。
」
其他還有像是在作 UT 時,相關規則、相關術語,以及執行 UT 時該要注意的地方,都可以先去了解一下~
常見的兩個名詞,TDD 和 BDD,其精神如下:
TDD
(Test-Driven Development) 測試驅動開發。BDD
(Behavior-driven development) 行為驅動開發。TDD 精神為:先寫測試程序,然後編碼實現其功能
,可以參考這裡【2】。
BDD:精神在於能更有效地發現問題、方便協作和示範,可參考這裡【3】。
BDD 可以說是 TDD 的加強版,TDD 比較偏向工程師的開發,而 BDD 的出現,就是為了讓其他非技術人員可參與討論的開發流程。
使用工具找到兩種,一個是 Mocha,另一個則是 Jest【4】。
Mocha 可以參考這篇文章【5】。
個人會想先從 Jset 開始學起。
本篇的最主要目標,就是要先釐清測試的用途、測試大概會有哪一些東西,以及蒐集各種資源,並且將這些資源與資料做排序,排列出一條可行的學習路徑。